//当前选中节点
var node;

$(function() {
	// ajax调用不使用缓存
	$.ajaxSetup( {
		cache : false
	});
	$("#menu_tree").jstree( {// menu_tree 为 由Jquery选择器选中的DIV容器的ID
				"themes" : {
					"theme" : "classic",
					"dots" : true,
					"icons" : true
				},
				"json_data" : {
					"ajax" : {
						"url" : "findAllSysMenus",
						"data" : function(n) {
							return {
								id : n.attr ? n.attr("id") : 0
							};
						}
					}
				},
				"core" : {
					"strings" : {
						"loading" : "菜单加载中……"
					}
				},
				// 插件使用右键菜单支持自定义右键菜单
				"plugins" : [ "themes", "json_data", "ui", "dnd", "crrm" ]
			});
	$("#menu_tree").bind("move_node.jstree", function(e, data) {
		// 移动目标节点
			var r = data.rslt.r;
			// 移动节点
			var o = data.rslt.o;
			if (r.attr("parentId") == "") {
				jAlert("不允许拖拽到根节点");
				$.jstree.rollback(data.rlbk);
				return;
			} else {
				jConfirm('确定要调整位置?', '系统提示', function(choice) {
					if (choice) {
						// 移动节点相对位置before;after;last
						var type = data.rslt.p;
						// 操作失败就进行回滚
						if (moveNode(o, r, type) == false) {
							$.jstree.rollback(data.rlbk);
							jAlert("菜单位置调整失败!");
						} else {
							jAlert("菜单位置调整成功!");
						}
					} else {
						$.jstree.rollback(data.rlbk);
						return;
					}
				});
			}
		});

	/**
	 * 移动节点的方法
	 * 
	 * @param oldNODE
	 *            原节点
	 * @param newNODE
	 *            目标节点
	 * @param TYPE
	 *            移动的类型
	 * @return
	 */
	function moveNode(oldNODE, newNODE, TYPE) {
		var flag = false;
		$.ajax( {
			type : "POST",
			cache : false,
			async : false,// 设置异步为false,重要！
			dataType : "json",
			url : "moveSysMenu",
			data : "oldNodeId=" + oldNODE.attr("id") + "&newNodeId="
					+ newNODE.attr("id") + "&changeType=" + TYPE,
			success : function(json) {
				flag = json.result;
			}
		});
		return flag;

	}

});
